package com.seafood.service;

import com.seafood.entity.Category;
import com.seafood.dto.CategoryDTO;

import java.util.List;

/**
 * 分类服务接口
 */
public interface CategoryService {
    
    /**
     * 获取所有顶级分类
     */
    List<CategoryDTO> getTopCategories();
    
    /**
     * 根据父分类ID获取子分类
     */
    List<CategoryDTO> getCategoriesByParentId(Long parentId);
    
    /**
     * 获取所有分类（树形结构）
     */
    List<CategoryDTO> getAllCategoriesTree();
    
    /**
     * 根据ID获取分类
     */
    CategoryDTO getCategoryById(Long id);
    
    /**
     * 创建分类
     */
    CategoryDTO createCategory(CategoryDTO categoryDTO);
    
    /**
     * 更新分类
     */
    CategoryDTO updateCategory(Long id, CategoryDTO categoryDTO);
    
    /**
     * 删除分类
     */
    void deleteCategory(Long id);
    
    /**
     * 根据名称搜索分类
     */
    List<CategoryDTO> searchCategoriesByName(String name);
    
    /**
     * 转换实体为DTO
     */
    CategoryDTO convertToDTO(Category category);
    
    /**
     * 转换DTO为实体
     */
    Category convertToEntity(CategoryDTO categoryDTO);
}